package br.com.paiva.container.dao.impl;

import java.util.List;

import org.hibernate.Query;
import org.springframework.stereotype.Service;

import br.com.paiva.container.Usuario;
import br.com.paiva.container.dao.UsuarioDAO;
import br.com.paiva.container.enuns.StatusUsuario;

@Service("usuarioDAO")
public class UsuarioDAOHibernate extends BaseDAOHibernate implements UsuarioDAO{	
	
	public List<Usuario> list() {		
		return super.loadAll(Usuario.class);
	}
	
	@SuppressWarnings("unchecked")
	public List<Usuario> listAllUserAtivo(){
		Query hql = super.getSession().createQuery("from Usuario where statusUsuario= :statusUsuario ");
		hql.setParameter("statusUsuario", StatusUsuario.ATIVO);
		
		return hql.list();
	}

	public Usuario retrive(Long id) {		
		return super.get(Usuario.class, id);
	}

	public void save(Usuario usuario) {
		super.saveOrUpdate(usuario);
		
	}
	
	public void delete(Object object) {
		// TODO Auto-generated method stub		
	}
	
	public Usuario retriveLoginUser(String login, String senha) {
		Query hql = this.getSession().createQuery("from Usuario where login= :login and senha= :senha ");
		hql.setParameter("login", login);
		hql.setParameter("senha", senha);
		
		return (Usuario) hql.uniqueResult();
	}	
}